package AnunciosMVC;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class ServletAnuncio
 */
@WebServlet("/ServletAnuncio")
public class ServletAnuncio extends HttpServlet {

    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public ServletAnuncio() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
     * response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String comando = request.getParameter("comando");

        //Si no se recibe ning�n comando redirigimos a listar anuncios
        if (comando == null) {
            comando = "listar_anuncios";
        }

        if (comando.equals("ver_anuncio")) {

            //Recogemos el parametro id
            int id = 0;
            try {
                id = Integer.parseInt(request.getParameter("id"));
            } catch (NumberFormatException nfe) {
                request.getSession().setAttribute("Mensaje", "No se ha podido mostrar el anuncio");
                response.sendRedirect("ServletAnuncio?comando=listar_anuncios");
            }

            //Creamos un objeto anuncio
            Anuncio anuncio = new Anuncio();
            //Cargamos los datos del anuncio
            if (anuncio.getAnuncio(id)) {
                request.getSession().setAttribute("anuncio", anuncio);
                //Cargamos el JSP ver_anuncio.jsp
                request.getRequestDispatcher("ver_anuncio.jsp").forward(request, response);
                //Para que aparezca en la consola de errores
                System.out.println("ver anuncio " + id + "(" + anuncio.getTitulo() + ")");
            } else {
                request.getSession().setAttribute("Mensaje", "No se ha podido mostrar el anuncio");
                response.sendRedirect("ServletAnuncio?comando=listar_anuncios");
                //Mostramos el mensaje tambi�n por la consola de errores
                System.out.println("No se ha podido ver el anuncio ");
            }

        } else if (comando.equals("insertar_anuncio")) {
            System.out.println("insertar anuncio");
        } else if (comando.equals("listar_anuncios")) {
            System.out.println("listar anuncios");
            //Cogemos datos del modelo
            ListAnuncios listadoAnuncios = new ListAnuncios();
            listadoAnuncios.getAnuncios();

        } else if (comando.equals("borrar_anuncio")) {
            System.out.println("borrar anuncio");
            //Borramos el anuncio de la BBDD
            Anuncio anuncio = new Anuncio();
            int id = 0;
            try {
                id = Integer.parseInt(request.getParameter("id"));
            } catch (NumberFormatException nfe) {
                request.getSession().setAttribute("Mensaje", "No se ha podido borrar el anuncio");
                response.sendRedirect("ServletAnuncio?comando=listar_anuncios");
            }
            anuncio.deleteAnuncio(id);
            response.sendRedirect("ServletAnuncio?comando=listar_anuncios");
        }

    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }
}
